Continued Learning: The Beauty of Maintenance - Kent Beck - DDD Europe 2020
https://youtu.be/3gib0hKYjB0
hr.icon
ソフトウェア開発においてはメンテナンスにより多くの時間を費やす。ソフトウェアは変更される。koma.icon
couplingの元々の定義の話:15分くらいのところ
ソフトウェアのコストはだいたい変更のコストで、変更の中でも特に高価な変更(これはそれほど多くはない)のコストと近似できる。どういう変更が高価になるかというと、Aを変えたらBを変える必要があり、Bを変えるとCを変える必要があり……とカスケードしていくものがそれになる。だからcouplingという概念が重要。
cohesionの話(28分くらいから)
あるelement A のsubelement同士がcoupledである度合いがAがcohesiveな度合い
couplingのコストとdecouplingのコストのトレードオフを設計者は考えないといけないという話をしている
"エクストリームプログラミングではソフトウェアライフサイクルの99%をメンテナンスにする"
振る舞いの変更は"irreversible"だから慎重に。構造の変更はどうとでもなるから気軽に(だからPRを分けるべきだ)
リファクタリングの話といえばそうかもしれないが、説明の仕方としてはナルホド感がある kakutani.icon 「ウォーターフォールが復活の兆しをみせている…」(フィードバックサイクルが長くなっているから? もうちょっと文脈があったと思うんだけど、つかみきれなかった。そうなんだあ、という気持ち kakutani.icon)